MS Outlook prilohy

Otázka od: janpolasek@vol.cz

21. 11. 2002 13:46

Hi everybody,
Mam D4 prof a pomoci OLE jsem napsal s pomoci prikladu
delphi3000.com proceduru na stahovani dennich davek datovych souboru
A slozenek
Ceske posty - viz nize kus zdrojaku.
Program bezel dva roky celkem bez problemu, pomoci MS Outlooku
projde slozku Dorucena posta a z doslych emailu vyfiltruje prilohy
a ulozi do urceneho pracovniho adresare, kde dojde k rozsifovani
atd. Chodilo to s Outlookem 97 a pak i s Outlookem 2000

Problem je v tom, ze od urcite doby to prestalo chodit a to tak, ze:

- prilohy starsich nevymazanych emailu, ktere Outlook zobrazuje v
jednom okne s textem emailu se nactou jako driv OK

- novejsi emaily Outlook zobrazuje jinak : maji text v jednom okne a
  prilohy ve spodnim uzkem okne.
  Tyto prilohy uz program nenacte.
  
Asi doslo k nejakemu nastaveni formatu emailu, ale neumim to vratit,
nebo
Odesilatele pouzivaji jiny format?


v procedure pouzivam promenne typu vatiant a string

    oApp := CreateOLEObject('Outlook.Application');

    try
      oNs := oApp.GetNamespace('MAPI');
      ofolder := oNs.GetDefaultFolder(6); // FolderTypeEnum
(olFolderInbox)

      MailCounter := 1;
      // je-li email v Dorucene poste
      if ofolder.items.count > 0 then
      begin
        repeat
          oMsg := ofolder.items(MailCounter);
          Den := oMsg.CreationTime;
          PredmetEmailu:= oMsg.subject;
          Odesilatel := oMsg.sendername;
          if VybranyOdesilatel = Odesilatel then
          begin
            atc := oMsg.Attachments.count;
            if atc > 0 then (* pocet priloh *)
            begin
              for Counter := 1 to atc do
              begin
                AttFileName :=
oMsg.Attachments.item(Counter).FileName; FileName
:= AttachmentPath+'\'+AttFileName;
(*zde se ulozi soubor prilohy do pozadovaneho adresare *)
                oMsg.Attachments.Item(Counter).SaveAsFile(FileName);
              end;
            end;
          end;
          inc(MailCounter);
        until MailCounter > ofolder.items.count;
      end;
    finally
      (*oApp.quit; *)(* vypne Outlook *)
    end;